home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c++-part2 / 12349 < prev    next >
Encoding:
Text File  |  1996-08-05  |  1.1 KB  |  53 lines

  1. Path: dos.canit.se!news
  2. From: ottosson@canit.se (Stefan Ottosson)
  3. Newsgroups: comp.lang.c,comp.lang.c++
  4. Subject: I dont want BIOS to get the keystrokes..
  5. Date: Tue, 19 Mar 1996 13:44:12 GMT
  6. Organization: CanIt Public Access, Stockholm
  7. Message-ID: <4imdph$497@dos.canit.se>
  8. NNTP-Posting-Host: dslip03.canit.se
  9. X-Newsreader: Forte Free Agent 1.0.82
  10.  
  11. why doesn┤t this work:?  ( Borland C++)
  12.  
  13. #include <dos.h>
  14. #define BIOSINT 0x9
  15.  
  16. extern unsigned _heaplen = 1024;
  17. extern unsigned _stklen = 512;
  18.  
  19. #ifdef __cplusplus
  20.     #define __CPPARGS ...
  21. #else
  22.     #define __CPPARGS
  23. #endif
  24.  
  25. int n=0;
  26. void interrupt (*oldhandler)(__CPPARGS);  // int 9h
  27. void interrupt keyb(__CPPARGS)
  28. {
  29. n++;
  30. }
  31.  
  32. int main()
  33. {
  34. oldhandler = getvect(BIOSINT);
  35. setvect(BIOSINT,keyb);
  36. while (n < 30) {};
  37. setvect(BIOSINT,oldhandler);
  38. return 0;
  39. }
  40.  
  41.  
  42.  
  43. what I┤m trying to do is to take over interupt 9h and do nothing until
  44. the interupt has been called 30 times, and then return to dos..
  45. It works if I call oldhandler() in keyb(), but I dont want to give the
  46. keystrokes to BIOS!!
  47.  
  48.  
  49.  
  50. Stefan Ottosson, Stockholm, Sweden  
  51. Email: ottosson@canit.se            
  52.  
  53.